package com.ruoyi.manufacturer;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.third.domain.ThirdPlatform;

/**
 * 第三方接入规范
 */
public interface IPlatform {

    /**
     * 返回接入的平台名称
     * @return
     */
    public String getPfCode ();

    /**
     * 返回接入的协议名称（内部定义，主要面向业务，如灯光/安防）
     * @return
     */
    public String getProtocol ();

    /**
     * 设备控制实现
     * @param controlVo
     * @return
     */
    public AjaxResult control(ControlVo controlVo);

    /**
     * 处理接入到的消息
     * @param msg
     * @return
     */
    public boolean process(Object msg);

    /**
     * 启动接入
     * @param platform 平台信息及配置
     * @return
     */
    public boolean start(ThirdPlatform platform);


    /**
     * 停止接入
     * @param platform 平台信息及配置
     * @return
     */
    public boolean stop(ThirdPlatform platform);


    /**
     * 判断是否正常运行
     * @param platform 平台信息及配置
     * @return
     */
    public boolean alive(ThirdPlatform platform);

}
